/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mentaproduto.modelo;

import mentaproduto.exception.ValidarException;
import mentaproduto.vo.VOProduto;

/**
 *
 * @author Administrador
 */
public class EntProduto {

    private int codigo;
    private String nome;
    private String descricao;
    private Double preco;
    private Double precoPromocional;
    private String foto;
    private boolean promocao;
    private int estoque;

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) throws ValidarException {
        if (!String.valueOf(codigo).trim().isEmpty()) {
            this.codigo = codigo;
        } else {
            throw new ValidarException("Código vazio");
        }
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) throws ValidarException {
        if (!descricao.trim().isEmpty()) {
            this.descricao = descricao;
        } else {
            throw new ValidarException("Descricao vazia");
        }
    }

    public String getFoto() {
        return foto;
    }

    public void setFoto(String foto) throws ValidarException {
        if (!foto.trim().isEmpty()) {
            this.foto = foto;
        } else {
            throw new ValidarException("Caminho da Foto vazio");
        }
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) throws ValidarException {
        if (!nome.trim().isEmpty()) {
            this.nome = nome;
        } else {
            throw new ValidarException("Nome vazio");
        }
    }

    public Double getPreco() {
        return preco;
    }

    public void setPreco(Double preco) throws ValidarException {
        if (!String.valueOf(preco).trim().isEmpty()) {
            this.preco = preco;
        } else {
            throw new ValidarException("Preço vazio");
        }
    }

    public Double getPrecoPromocional() {
        return precoPromocional;
    }

    public void setPrecoPromocional(Double precoPromocional) throws ValidarException {
        if (!String.valueOf(precoPromocional).trim().isEmpty()) {
            this.precoPromocional = precoPromocional;
        } else {
            throw new ValidarException("Preço Promocional vazio");
        }
    }


    public Object getValueObject() {
        VOProduto ret = new VOProduto();
        ret.setCodigo(this.codigo);
        ret.setDescricao(this.descricao);
        ret.setFoto(this.foto);
        ret.setNome(this.nome);
        ret.setPreco(this.preco);
        ret.setPrecoPromocional(this.precoPromocional);
        ret.setPromocao(this.promocao);
        return ret;
    }

    public Object getFromValueObject(Object valueObject) throws ValidarException {
        if (valueObject instanceof VOProduto) {
            VOProduto vo = (VOProduto) valueObject;
            EntProduto ret = new EntProduto();
            ret.setCodigo(vo.getCodigo());
            ret.setNome(vo.getNome());
            ret.setDescricao(vo.getDescricao());
            ret.setFoto(vo.getFoto());
            ret.setPreco(vo.getPreco());
            ret.setPrecoPromocional(vo.getPrecoPromocional());
            ret.setPromocao(vo.isPromocao());

            return ret;
        } else {
            return null;
        }
    }

    /**
     * @return the promocao
     */
    public boolean isPromocao() {
        return this.promocao;
    }

    /**
     * @param promocao the promocao to set
     */
    public void setPromocao(boolean promocao) {
        this.promocao = promocao;
    }

    /**
     * @return the estoque
     */
    public int getEstoque() {
        return estoque;
    }

    /**
     * @param estoque the estoque to set
     */
    public void setEstoque(int estoque) throws ValidarException {
        if (!String.valueOf(codigo).trim().isEmpty()) {
            this.estoque = estoque;
        } else {
            throw new ValidarException("Estoque vazio");
        }
    }
}
 


